<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://ns.ids-adi.org/qxf/model#" elementFormDefault="qualified" targetNamespace="http://ns.ids-adi.org/qxf/model#" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:complexType name="QMXF">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="template-definition" type="tns:TemplateDefinition" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="template-qualification" type="tns:TemplateQualification" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="class-definition" type="tns:ClassDefinition" />
    </xs:sequence>
    <xs:attribute name="timestamp" type="xs:string" />
    <xs:attribute name="license-ref" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="TemplateDefinition">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="suggested-designation" type="tns:SuggestedDesignation" />
      <xs:element minOccurs="0" maxOccurs="1" name="designation" type="tns:Designation" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="name" type="tns:Name" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="description" type="tns:Description" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="textual-definition" type="tns:TextualDefinition" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="status" type="tns:Status" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="role-definition" type="tns:RoleDefinition" />
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="SuggestedDesignation">
    <xs:simpleContent>
      <xs:extension base="xs:string" />
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="Designation">
    <xs:simpleContent>
      <xs:extension base="xs:string" />
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="Name">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="lang" type="xs:string" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="Description">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="lang" type="xs:string" />
        <xs:attribute name="contentType" type="xs:string" />
        <xs:attribute name="parseType" type="xs:string" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="TextualDefinition">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="lang" type="xs:string" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="Status">
    <xs:attribute name="authority" type="xs:string" />
    <xs:attribute name="class" type="xs:string" />
    <xs:attribute name="from" type="xs:string" />
    <xs:attribute name="to" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="RoleDefinition">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="name" type="tns:Name" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="suggested-designation" type="tns:SuggestedDesignation" />
      <xs:element minOccurs="0" maxOccurs="1" name="designation" type="tns:Designation" />
      <xs:element minOccurs="0" maxOccurs="1" name="description" type="tns:Description" />
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" />
    <xs:attribute name="range" type="xs:string" />
    <xs:attribute name="minimum" type="xs:string" />
    <xs:attribute name="maximum" type="xs:string" />
    <xs:attribute name="inverse-minimum" type="xs:string" />
    <xs:attribute name="inverse-maximum" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="TemplateQualification">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="suggested-designation" type="tns:SuggestedDesignation" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="designation" type="tns:Designation" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="name" type="tns:Name" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="description" type="tns:Description" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="textual-definition" type="tns:TextualDefinition" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="status" type="tns:Status" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="role-qualification" type="tns:RoleQualification" />
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" />
    <xs:attribute name="qualifies" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="RoleQualification">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="name" type="tns:Name" />
      <xs:element minOccurs="0" maxOccurs="1" name="value" type="tns:Value" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="description" type="tns:Description" />
    </xs:sequence>
    <xs:attribute name="qualifies" type="xs:string" />
    <xs:attribute name="range" type="xs:string" />
    <xs:attribute name="minimum" type="xs:string" />
    <xs:attribute name="maximum" type="xs:string" />
    <xs:attribute name="inverse-minimum" type="xs:string" />
    <xs:attribute name="inverse-maximum" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="Value">
    <xs:attribute name="lang" type="xs:string" />
    <xs:attribute name="reference" type="xs:string" />
    <xs:attribute name="As" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="ClassDefinition">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="entity-type" type="tns:EntityType" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="classification" type="tns:Classification" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="specialization" type="tns:Specialization" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="suggested-designation" type="tns:SuggestedDesignation" />
      <xs:element minOccurs="0" maxOccurs="1" name="designation" type="tns:Designation" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="name" type="tns:Name" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="description" type="tns:Description" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="textual-definition" type="tns:TextualDefinition" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="status" type="tns:Status" />
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="EntityType">
    <xs:attribute name="reference" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="Classification">
    <xs:attribute name="reference" type="xs:string" />
    <xs:attribute name="label" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="Specialization">
    <xs:attribute name="reference" type="xs:string" />
    <xs:attribute name="label" type="xs:string" />
  </xs:complexType>
</xs:schema>